<template>
	<view class="container">
		<!-- 空白页 -->
		<view v-if="subjectiveList&&empty===true" class="empty">
			<image src="/static/emptyCart.jpg" mode="aspectFit"></image>
			<view  class="empty-tips">
				空空如也
				<navigator class="navigator" url="../index/index" open-type="switchTab">随便逛逛></navigator>
			</view>
		</view>
		<view v-else>
			<!-- 列表 -->
			<view class="cart-list">
				<block v-for="(item, index) in subjectiveList" :key="index">
					<view
						class="cart-item b-b" 
						@click="goDetail(item)"
						 :data-id="item.broadcastid"
					>
						<view class="image-wrapper">
							<image :src="item.picture" 
								class="loaded"
								mode="aspectFill" 
								lazy-load 
							></image>
						</view>
						<view class="item-right">
							<text class="clamp title">{{item.broadcastname}}</text>
							<view>
							<text class="attr">{{item.userxm}} </text>
							<text v-if="item.specialprice=='0.00'" class="attr_tag attr_tag-danger">免费</text>	
							<text v-if="item.buy_flag=='1' && item.specialprice!='0.00' " class="attr_tag attr_tag-primary">已购买</text>	
							</view>
							
							<view class="bottom">
								<text class="price">直播状态: {{item.broadcastflge == '1'?'正在直播':'未开播'}}</text>
								
								<text class="time">直播时间: {{item.startdate}}-{{item.enddate}}</text>
							</view>
						</view>
					</view>
				</block>
			</view>
		</view>
	</view>
</template>

<script>
	import subjectiveLiveApi from '@/api/subjectiveLive.js'
	let _this,liveInterval;
	import uniTag from "@/components/uni-tag/uni-tag.vue"
	export default {
		components: {uniTag},
		data() {
			return {
				total: 0, //总价格
				allChecked: false, //全选状态  true|false
				empty: false, //空白页现实  true|false
				subjectiveList: null,
				usercode:'',
			};
		},
		onPullDownRefresh() {
			console.log('refresh');
			_this.initData()
		},
		onLoad(){
			
		},
		onShow() {
			_this = this;
			let {usercode,userxm} = uni.getStorageSync('user')
			_this.usercode = usercode
			_this.initData();
			
			console.log('live on show')
			liveInterval=setInterval(function(){
				_this.zgzb_list_status();
			},5000)
		},
		onHide() {
			console.log('live on hide')
			clearInterval(liveInterval)
		},
			
		onBackPress() {
			console.log('live back')
			clearInterval(liveInterval)
		},
		
		watch:{
			//显示空白页
			subjectiveList(e){
				let empty = e.length === 0 ? true: false;
				if(this.empty !== empty){
					this.empty = empty;
				}
			}
		},
		computed:{
			
		},
		methods: {
			//请求数据
			initData(){
				subjectiveLiveApi.zgzbList({usercode:_this.usercode}).then(res => {
					console.log(res)
					_this.subjectiveList = res.data ||[]
					uni.stopPullDownRefresh();
				}).catch(err=>{
					uni.stopPullDownRefresh();
				});
				// this.empty = this.subjectiveList.length===0?true:false;
			},
			zgzb_list_status(){
				subjectiveLiveApi.zgzb_list_status({usercode:_this.usercode}).then(res => {
					console.log(res)
					let data = res.data ||[]
					_this.subjectiveList.forEach((item,index)=>{
						for(let i=0;i<data.length;i++){
							item.broadcastflge ='0'
							if(item.broadcastid == data[i].broadcastid){
								item.broadcastflge =data[i].broadcastflge
							}
						}
					})
				}).catch(err=>{
				});
			},
			//监听image加载完成
			onImageLoad(key, index) {
				this.$set(this[key][index], 'loaded', 'loaded');
			},
			//监听image加载失败
			onImageError(key, index) {
				this[key][index].picture = '/static/errorImage.jpg';
			},
			goDetail(item) {
				
				if(item.specialprice!='0.00' && item.buy_flag=='0'){
					//需要购买
					//跳到购买页面
					uni.navigateTo({
						url: `/pages/hotCourses/detail?id=${item.curriculumid}&redirectid=${item.broadcastid}&type=subjectLive`
					})
					return;
				}
				
				
				let {
					broadcastid,
					broadcastflge
				} = item
				if(broadcastflge!='1'){
					//未开播
					uni.showToast({
						icon:'none',
						title:'当前未开播'
					})
					return;
				}
				uni.navigateTo({
					url: `/pages/subjectiveLive/detail?id=${broadcastid}`
				})
			},
		}
	}
</script>

<style lang='scss'>
	.container{
		padding-bottom: 134upx;
		/* 空白页 */
		.empty{
			position:fixed;
			left: 0;
			top:0;
			width: 100%;
			height: 100vh;
			padding-bottom:100upx;
			display:flex;
			justify-content: center;
			flex-direction: column;
			align-items:center;
			background: #fff;
			image{
				width: 240upx;
				height: 160upx;
				margin-bottom:30upx;
			}
			.empty-tips{
				display:flex;
				font-size: $font-sm+2upx;
				color: $font-color-disabled;
				.navigator{
					color: $uni-color-primary;
					margin-left: 16upx;
				}
			}
		}
	}
	/* 购物车列表项 */
	.cart-item{
		display:flex;
		position:relative;
		padding:30upx 40upx;
		.image-wrapper{
			width: 230upx;
			height: 230upx;
			flex-shrink: 0;
			position:relative;
			image{
				width: 230upx;
				height: 230upx;
				border-radius:10upx;
			}
		}
		.checkbox{
			position:absolute;
			left:-16upx;
			top: -16upx;
			z-index: 8;
			font-size: 44upx;
			line-height: 1;
			padding: 4upx;
			color: $font-color-disabled;
			background:#fff;
			border-radius: 50px;
		}
		.item-right{
			display:flex;
			flex-direction: column;
			flex: 1;
			overflow: hidden;
			position:relative;
			padding-left: 30upx;
			.title{
				font-size:$font-base + 2upx;
				color: $font-color-dark;
				line-height: 40upx;
			}
			.attr{
				/* display: -webkit-box;
				-webkit-box-orient: vertical;
				-webkit-line-clamp: 2;
				overflow: hidden; */
				font-size: $font-sm + 2upx;
				color: $font-color-light;
				line-height: 50upx;
			}
			.attr_tag{
				font-size: $font-sm + 2upx;
				line-height: 50upx;
				color: #fff;
				
				border-radius: 0 30upx 30upx 0 ;
				margin: 0 20upx;
				padding: 0 10upx;
			}
			.attr_tag-danger{
				background-color: #fb4b6c;
			}
			.attr_tag-primary{
				background-color: #007aff;
			}
			.bottom{
				position: absolute;
				bottom: 0upx;
				width: 100%;
				
			}
			.price{
				
				height: 50upx;
				font-size: $font-sm + 2upx;
				line-height: 40upx;
				color: $font-color-light;
			}
			.time{
				display: block;
				height: 50upx;
				font-size: $font-sm + 2upx;
				line-height: 40upx;
				color: $font-color-light;
			}
		}
		.del-btn{
			padding:4upx 10upx;
			font-size:34upx; 
			height: 50upx;
			color: $font-color-light;
		}
	}
	/* 底部栏 */
	.action-section{
		/* #ifdef H5 */
		margin-bottom:100upx;
		/* #endif */
		position:fixed;
		left: 30upx;
		bottom:30upx;
		z-index: 95;
		display: flex;
		align-items: center;
		width: 690upx;
		height: 100upx;
		padding: 0 30upx;
		background: rgba(255,255,255,.9);
		box-shadow: 0 0 20upx 0 rgba(0,0,0,.5);
		border-radius: 16upx;
		.checkbox{
			height:52upx;
			position:relative;
			image{
				width: 52upx;
				height: 100%;
				position:relative;
				z-index: 5;
			}
		}
		.clear-btn{
			position:absolute;
			left: 26upx;
			top: 0;
			z-index: 4;
			width: 0;
			height: 52upx;
			line-height: 52upx;
			padding-left: 38upx;
			font-size: $font-base;
			color: #fff;
			background: $font-color-disabled;
			border-radius:0 50px 50px 0;
			opacity: 0;
			transition: .2s;
			&.show{
				opacity: 1;
				width: 120upx;
			}
		}
		.total-box{
			flex: 1;
			display:flex;
			flex-direction: column;
			text-align:right;
			padding-right: 40upx;
			.price{
				font-size: $font-lg;
				color: $font-color-dark;
			}
			.coupon{
				font-size: $font-sm;
				color: $font-color-light;
				text{
					color: $font-color-dark;
				}
			}
		}
		.confirm-btn{
			padding: 0 38upx;
			margin: 0;
			border-radius: 100px;
			height: 76upx;
			line-height: 76upx;
			font-size: $font-base + 2upx;
			background: $uni-color-primary;
			box-shadow: 1px 2px 5px rgba(217, 60, 93, 0.72)
		}
	}
	/* 复选框选中状态 */
	.action-section .checkbox.checked,
	.cart-item .checkbox.checked{
		color: $uni-color-primary;
	}
	.uni-tag--danger{
		background-color: #fb4b6c;
		color: #fff;
	}
</style>
